package cn.csc.module.member.controller.admin.user.vo;

import cn.csc.framework.common.pojo.PageParam;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDateTime;
import java.util.Date;

import static cn.csc.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@ApiModel("管理后台 - 会员分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class MemberUserPageReqVO extends PageParam {

    @ApiModelProperty(value = "用户昵称")
    private String nickname;

    @ApiModelProperty(value = "证件类型：1 身份证，2 军官证，3 护照")
    private Byte idCardType;

    @ApiModelProperty(value = "证件号")
    private String idCardNo;

    @ApiModelProperty(value = "真实姓名")
    private String name;

    @ApiModelProperty(value = "状态")
    private Byte status;

    @ApiModelProperty(value = "性别")
    private Byte gender;

    @ApiModelProperty(value = "出生日期")
    private Date birthday;

    @ApiModelProperty(value = "所在地")
    private Integer areaId;

    @ApiModelProperty(value = "用户备注")
    private String mark;

    @ApiModelProperty(value = "积分")
    private Integer score;

    @ApiModelProperty(value = "头像")
    private String avatar;

    @ApiModelProperty(value = "手机号")
    private String mobile;

    @ApiModelProperty(value = "邮箱")
    private String email;

    @ApiModelProperty(value = "密码")
    private String password;

    @ApiModelProperty(value = "注册类型, 10码云, 20钉钉, 30企业微信, 31微信公众号, 32微信开放平台, 34微信小程序")
    private String registerType;

    /**
     * 用户类型(0普通，5采购商)
     */
    @ApiModelProperty(value = "用户类型(0普通，5采购商)")
    private Integer type;

    @ApiModelProperty(value = "openid")
    private String openId;

    @ApiModelProperty(value = "unionid")
    private String unionId;

    @ApiModelProperty(value = "token")
    private String token;

    @ApiModelProperty(value = "支付密码")
    private String payPassword;

    @ApiModelProperty(value = "注册 IP")
    private String registerIp;

    @ApiModelProperty(value = "最后登录IP")
    private String loginIp;

    @ApiModelProperty(value = "最后登录时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] loginDate;

    @ApiModelProperty(value = "创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] createTime;

}
